home *** CD-ROM | disk | FTP | other *** search
/ FANTA 97 / FANTA97A (backup).iso / FRONTPAG.98 / DATA.Z / admin.pl < prev    next >
Perl Script  |  1997-09-26  |  5KB  |  172 lines

  1. #!/usr/local/bin/perl
  2. # Usage: admin.pl
  3. # Process automation script for Microsoft FrontPage Server Extensions.
  4. #
  5. # Copyright 1996 Microsoft Corporation -- All Rights Reserved.
  6. #
  7. #
  8.  
  9. $0 =~ m|(.*)/([^/]*$)|, $PROG = $2; $EXECDIR = $1; # find program name
  10.  
  11. # These are standard FrontPage Defaults
  12. $PORT = '80';
  13. $TYPE = 'msiis';
  14. $CREATEUSER = 'false';
  15. $ROOT = 'C:\\Program Files\\Microsoft FrontPage\\';
  16. $FTPRO = 'r';
  17.  
  18. # check for options
  19. while ($#ARGV >= 0) {
  20.    $_ = shift @ARGV;
  21.    $OPERATION = shift                 ,next if (/^-operation/);
  22.    $PORT = shift                      ,next if (/^-port/);
  23.    $TYPE = shift                      ,next if (/^-type/);
  24.    $WEB = shift                       ,next if (/^-web/);
  25.    $SERVCONF = shift                  ,next if (/^-servconf/);
  26.    $MULTIHOST = shift                 ,next if (/^-multihost/);
  27.    $USERNAME = shift                  ,next if (/^-username/);
  28.    $PASSWORD = shift                  ,next if (/^-password/);
  29.    $CREATEUSER = shift                ,next if (/^-createuser/);
  30.    $GROUPS = shift                    ,next if (/^-groups/);
  31.    $LOCALGROUPS = shift               ,next if (/^-localgroups/);
  32.    $WWWROOT = shift                    ,next if (/^-wwwroot/);
  33.    $FTPROOT = shift                   ,next if (/^-ftproot/);
  34.    $FTPRW = shift                     ,next if (/^-ftprw/);
  35.  
  36.  
  37.    # we only get here for -h or unknown options
  38.    print STDERR "\nUnknown argument: $_" if (!/^-h/i);
  39.    print STDERR <<"ENDOFHELP";
  40.  
  41.       Usage:  $PROG [-operation <install>] 
  42.                     [-port <port>] 
  43.                     [-type <server type>] 
  44.                     [-web  <webname>] 
  45.                     [-servconf <server config file>] 
  46.                     [-multihost <hostname>] 
  47.                     [-username <username>] 
  48.                     [-password <password>] 
  49.                     [-createuser <true|false>] 
  50.                     [-groups <comma separated list list of groups>] 
  51.                     [-localgroups <comma separated list list of local groups>] 
  52.                     [-wwwroot <folder>] 
  53.                     [-ftproot <folder>] 
  54.                     [-ftprw <rw>] 
  55.                     [-h for help] 
  56. ENDOFHELP
  57.     exit 1;
  58. }
  59.  
  60. # Add user account if necessary
  61.  
  62. if ($CREATEUSER eq 'true')
  63. {
  64.     &step("Creating user account.");
  65.     if ($USERNAME ne '' && $PASSWORD ne '')
  66.     {
  67.         system("net user $USERNAME $PASSWORD /ADD");
  68.     }
  69.  
  70.     if ($USERNAME ne '' && $GROUPS ne '')
  71.     {
  72.         &step("Adding user to groups.");
  73.         foreach $grp ($GROUPS)
  74.         {
  75.             system("net group $grp $USERNAME /ADD");
  76.         }
  77.     }
  78.  
  79.     if ($USERNAME ne '' && $LOCALGROUPS ne '')
  80.     {
  81.         &step("Adding user to local groups.");
  82.         foreach $grp ($LOCALGROUPS)
  83.         {
  84.             system("net group $grp $USERNAME /ADD");
  85.         }
  86.     }
  87. }
  88.  
  89. # Create document root
  90. if ($WWWROOT ne '' && ! -f $WWWROOT)
  91. {
  92.     &step("Creating folder.");
  93.     system("mkdir $WWWROOT");
  94. }
  95.  
  96. # Create WWW virtual server
  97. if ($WWWROOT ne '')
  98. {
  99.     &step("Creating WWW virtual server.");
  100.     if ($MULTIHOST ne '')
  101.     {
  102.         system("iisadmin.exe -o add -s www -u / -d $WWWROOT -v $MULTIHOST");
  103.     }
  104.     else
  105.     {
  106.         system("iisadmin.exe -o add -s www -u / -d $WWWROOT");
  107.     }
  108. }
  109.         
  110. # Create FTP virtual server
  111. if ($FTPROOT ne '')
  112. {
  113.     &step("Creating FTP virtual server.");
  114.  
  115.     system("mkdir $FTPROOT") if ( ! -f $FTPROOT);
  116.  
  117.     $R = '';
  118.     $W = '';
  119.     
  120.     $R = '-read true' if (index($FTRPW,'r') ne $[-1);
  121.     $W = '-write true' if (index($FTRPW,'w') ne $[-1);
  122.  
  123.     if ($MULTIHOST ne '')
  124.     {
  125.         system("iisadmin.exe -o add -s ftp -u / -d $FTPROOT -v $MULTIHOST $R $W");
  126.     }
  127.     else
  128.     {
  129.         system("iisadmin.exe -o add -s www -u / -d $FTPROOT $R $W");
  130.     }
  131. }
  132.         
  133.  
  134. # Install FP against virtual server
  135. if ($OPERATION eq 'install')
  136. {
  137.     &step("Installing FrontPage Server Extensions.");
  138.     $cmd = 'fpsrvadm.exe -o install';
  139.     $cmd .= " -m $MULTIHOST" if ($MULTIHOST ne '');
  140.     $cmd .= " -p $PORT" if ($PORT ne '');
  141.     $cmd .= " -t $TYPE" if ($TYPE ne '');
  142.     $cmd .= " -w $WEB" if ($WEB ne '');
  143.     $cmd .= " -s $SERVCONF" if ($SERVCONF ne '');
  144.     $cmd .= " -u $USERNAME" if ($USERNAME ne '');
  145.     $cmd .= " -pw $PASSWORD" if ($PASSWORD ne '');
  146.     system($cmd);
  147. }
  148.  
  149. exit 0;
  150.  
  151. #  Helper subroutines
  152.  
  153. # status message
  154. sub step {
  155.     local($message) = @_;
  156.     printf "Step %2d: $message\n", ++$step;
  157. }
  158.  
  159. # status message
  160. sub note {
  161.     local($message) = @_;
  162.     print "         $message\n";
  163. }
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.